#运算符
a = 10
b = 3
print("a+b=",a+b)
print("a-b=",a-b)
print("a*b=",a*b)
print("a/b=",a/b)
print("a//b=",a//b)
print("a**b=",a**b)
print("-"*50)
print("a and b=",a and b)#在and两侧的对象按照从左到右判定，都为真才输出，因此最后判断的是b，输出b
print("a or b=",a or b)#or只要一个是真，直接输出，故为a（逻辑判定中的中断操作）
#这种输出不影响嵌套过程中真假的判断。
print("not b=",not b)#只要不是0都是真
i = [10]
print(not i)#false
print(i.pop())#方法.pop可以将列表中值弹出
print(not i)#true
print("-"*50)
l=[1,2,3,4,5,6]
print("3 in l:",3 in l)
print("13 in l:",13 in l)
#字符串
print("-"*50)
#n = input("输入：")
#print("输出：",n)
#转义字符 \t \n \r \' \" \\
print('abc\t123')#Tab
print('abc\n123')#换行
print('abc\r123')#显示不出来
print('abc\'123')
print('abc\"123')
print('abc\\123')#不处理' " \
print("-"*50)
#字符串的格式化输出（一）
# 用%运算符
id = 20240714
name = "zmd"
s = "我的名字叫%s，学号是%d。"
print("我的名字叫%s，学号是%d。"%(name,id))
print(s%(name,id))
#字符串的格式化输出（二）
# 格式化字符串 f
print("我的名字叫{name}，学号是{id}。")
print(f"我的名字叫{name}，学号是{id}。")
a,b=10,20#多元赋值
print(f"a和b的和为：{a + b}")
print(f"{a}和{b}的和为：{a + b}")#{}内的变量名一定要有
#print(f"{a}和{b}的和为：{a + b}{c}")爆错
print(f"a和b的和为：{a + b =}")#后加=可显示变量的值
print(f"{a=}和{b=}的和为：{a + b=}")
print(f'-----{id}-----')
print(f'{id:-<20}')
print(f'{id:->20}')#在左右添加字符
print(f'{id:-^20}')#在两侧添加字符
print(f'{str(id)+name:-^20}')
#字符串的格式化输出（三）
#字符串的format方法
print("我的名字叫{}，学号是{}".format(name,id))
print("我的名字叫{1}，学号是{0}".format(name,id))#可以通过{}内的序号更改次序。
print("我的名字叫{1}，学号是{1}".format(name,id))#不一定取所有变量
print("{0}".format(1234567890))
print("{0:,}".format(1234567890))#，：分隔
print("{0:,}".format(1234567890.191248))#小数部分不变
print("{0:,.2f}".format(1234.2345))#:.2f表示保留2位小数
print("{0:,.100f}".format(1234.2345))#？？
print("{0:x}".format(1234567890))#x表示16进制输出，8进制为o，2进制为b
